There have been a number of attempts recently to fashion XML client-server protocols in place of traditional ASCII protocols. The strength of ASCII protocols for network services such as SMTP, NNTP, and IMAP, is their relative simplicity. Debugging new implementations of such protocols is straightforward. It is convenient to be able to telnet to the appropriate port and manually enter commands to test the service or to “truss” the client or server and monitor the readable communication. “truss” is a Unix command that permits a user to “see” all system calls made by a process, the parameters passed by those call and any data or errors returned from those calls. That is, a user can “see” what their processes are “asking” Unix to do and the results of those requests making the “truss” command a very powerful debugging tool. On the other hand, an undesirable hallmark of these legacy protocols is their invention of ad hoc syntaxes for specifying requests and replies. This is particularly observed in their conventions for quoting meta-characters, dealing with for example line continuations, encoding binary data and handling error conditions.